usr/src/kernels/5.5.19-3.oe1.riscv64/include/uapi/linux/shm.h
var\tmp\build-root\22.03-riscv64\usr\include\linux\shm.h
usr/include/linux/shm.h
usr/include/linux/sem.h

可以直接运行的命令
cat /proc/sys/kernel/ctrl-alt-del

https://zhuanlan.zhihu.com/p/538825857
usr/src/kernels/5.5.19-3.oe1.riscv64/include/trace/perf.h
usr/src/kernels/5.5.19-3.oe1.riscv64/include/trace/syscall.h
usr/src/kernels/5.5.19-3.oe1.riscv64/scripts/gdb/linux/tasks.py
usr/include/linux/userfaultfd.h

cat usr/src/kernels/5.5.19-3.oe1.riscv64/include/linux/amd-iommu.h

[root@openEuler-RISCV-rare /]# vi task_struct.ag 


一、whereis <程序名称>
查找软件的安装路径
-b 只查找二进制文件
-m 只查找帮助文件
-s 只查找源代码
-u 排除指定类型文件
-f 只显示文件名
-B <目录> 在指定目录下查找二进制文件
-M <目录> 在指定目录下查找帮助文件
-S <目录> 在指定目录下查找源代码
二、locate <文件名称>
在文件索引数据库中搜索文件
-d <数据库路径> 搜索指定数据库
updatedb 更新文件索引数据库

三、find [路径] <表达式>
查找文件
-name <表达式> 根据文件名查找文件
-iname <表达式> 根据文件名查找文件，忽略大小写
-path <表达式> 根据路径查找文件
-ipath <表达式> 根据路径查找文件，忽略大小写
-amin <分钟> 过去N分钟内访问过的文件
-atime <天数> 过去N天内访问过的文件
-cmin <分钟> 过去N分钟内修改过的文件
-ctime <天数> 过去N天内修改过的文件
-anewer <参照文件> 比参照文件更晚被读取过的文件
-cnewer <参照文件> 比参照文件更晚被修改过的文件
-size <大小> 根据文件大小查找文件，单位b c w k M G
-type <文件类型> 根据文件类型查找文件。b 块设备、c 字符设备、 d 目录、 p 管道文件、 f 普通文件、 l 链接、 s 端口文件
-user <用户名> 按归属用户查找文件
-uid <uid> 按UID查找文件
-group <群组名> 按归属群组查找文件
-gid <gid> 按GID查找文件
-empty 查找空文件

四、grep
从文件内容查找匹配指定字符串的行：
$ grep "被查找的字符串" 文件名
从文件内容查找与正则表达式匹配的行：
$ grep –e “正则表达式” 文件名
查找时不区分大小写：
$ grep –i "被查找的字符串" 文件名
查找匹配的行数：
$ grep -c "被查找的字符串" 文件名
从文件内容查找不匹配指定字符串的行：
$ grep –v "被查找的字符串" 文件名
原文链接：https://blog.csdn.net/kt1776133839/article/details/123602096

1、内核文件I/O－＞标准库I/O－＞高级I/O－＞IPC中
1. read()/write();
2. pread()/pwrite();
3. getc()/putc();
4. fgetc()/fputc();
5. getchar()/putchar();
6. ferror()/feof();
7. fgets()/fputs();
8. gets()/puts();
9. fread()/fwrite();
10. scanf()/fscanf()/sscanf()/vscanf()/vfscanf()/vsscanf()
11. printf()/fprintf()/sprintf()/snprintf()/vprintf()/vfprintf()/vsprintf()/vsanprintf()
12. readv()/writev()
13. read()/written()
14. msgrcv()/msgsnd()
15. revc()/recvfrom()/recvmsg()
16. send()/sendto()/sendmsg()
17. recv_fd()/send_fd()/send_err()

《深入理解Linux内核》 推荐等级：5颗星
Linux内核设计与实现》 推荐等级：4颗星
《Linux设备驱动程序》 推荐等级：5颗星
《深入理解LINUX网络内幕》 推荐等级：4颗星


https://toolchains.bootlin.com/releases_riscv64-lp64d.html
反斜杠(\)是换行符的意思。这样比较便于Makefile的易读。
https://gitee.com/openeuler/RISC-V/issues/I4YDH6?_from=gitee_search
https://gitee.com/zxs-un/doc-port2riscv64-openEuler/blob/master/doc/img-build-manual-force-riscv-uboot-extlinux.md
https://zhuanlan.zhihu.com/p/479666128  qemu
https://blog.csdn.net/weixin_42423817/article/details/116761677  qemu搭建linux内核环境,利用Qemu搭建内核调试环境

sysctl [-n] [-e] -w variable=value
sysctl [-n] [-e] -p <filename> (default /etc/sysctl.conf)
sysctl [-n] [-e] -a
常用参数的意义：
-w   临时改变某个指定参数的值，如
    sysctl -w net.ipv4.ip_forward=1
-a   显示所有的系统参数
-p   从指定的文件加载系统参数，如不指定即从/etc/sysctl.conf中加载
如果仅仅是想临时改变某个系统参数的值，可以用两种方法来实现,例如想启用IP路由转发功能：
1) #echo 1 > /proc/sys/net/ipv4/ip_forward
2) #sysctl -w net.ipv4.ip_forward=1
以上两种方法都可能立即开启路由功能，但如果系统重启，或执行了
# service network restart


